############################################################
from vnpy.event import EventEngine
from vnpy.trader.setting import SETTINGS
from vnpy.trader.engine import MainEngine
from vnpy.trader.ui import MainWindow, create_qapp
############################################################
from vnpy_ctastrategy import CtaStrategyApp
import vnpy_ctastrategy
############################################################
from vnpy_ctabacktester import CtaBacktesterApp
import vnpy_ctabacktester
############################################################
from vnpy_datamanager import DataManagerApp
import vnpy_datamanager
############################################################
from vnpy_ctp import CtpGateway
############################################################
def main() :
    ############################################################
    qapp = create_qapp()
    ############################################################
    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)
    main_engine.add_gateway(CtpGateway)
    main_engine.add_app(CtaStrategyApp)
    main_engine.add_app(CtaBacktesterApp)
    main_engine.add_app(DataManagerApp)
    ############################################################
    main_window = MainWindow(main_engine, event_engine)
    main_window.showMaximized()
    ############################################################
    setting = {
        '用户名': SETTINGS['用户名'],
        '密码': SETTINGS['密码'],
        '经纪商代码': SETTINGS['经纪商代码'],
        ############################################
        '交易服务器': SETTINGS['交易服务器'],
        '行情服务器': SETTINGS['行情服务器'],
        ############################################
        '产品名称': SETTINGS['产品名称'],
        '授权编码': SETTINGS['授权编码'],
    }
    ############################################################
    #main_window.open_widget(vnpy_ctastrategy.ui.widget.CtaManager, 'CtaStrategy')
    ############################################################
    main_engine.connect(setting, 'CTP')
    ############################################################
    qapp.exec()
############################################################
if __name__ == "__main__" :
    main()
############################################################

